The present invention relates to filter circuits, and in particular, to programmable filter circuits and methods.
Filters are electronic circuits that pass electronic signal components at some frequencies and reject (e.g., attenuate or block) components at other frequencies. FIG. 1A illustrates a prior art filter. Filter 101 may receive an electronic signal, x(t), and output another signal, y(t). If the input signal, x(t), include multiple frequency components, the filter may only pass some, but not all, of such components. Thus, the output signal, y(t), may only include the frequencies that the filter passes. FIG. 1 further illustrates the frequency response, F1(ω), of an ideal filter. An input signal may include two frequency components 110 and 120. As shown in the graph, the frequency response at zero frequency (i.e., DC) is unity (i.e., |F|=1). The frequency response remains unity across a range of frequencies and then falls off at higher frequencies. When the frequency response of the filter is unity at a given frequency, signals at such frequency will be passed through to the output. However, when the frequency response is less than unity, signals will be attenuated. FIG. 1 illustrates two frequency components 110 and 120 of the filter input, x(t). Component 110 is at a frequency where the filter has a unity frequency response. Thus, frequency component 110 of input signal, x(t), will pass through the filter. However, frequency component 120 is at a frequency where the filter has a frequency response less than unity. Thus, frequency component 120 of input signal will be attenuated as it is passed through filter 101. The range of frequencies that are passed by a filter is sometimes referred to as the “passband” of the filter, and the range of frequencies that are attenuated or blocked by a filter is sometimes referred to as the “stop band.” The range of the passband, in frequency is commonly referred to as the “bandwidth” of the filter. The frequency response illustrated in the graph in FIG. 1 is an example of a low pass filter (“LPF”) because low frequencies from zero up to the bandwidth are passed, and higher frequencies above the bandwidth are increasingly attenuated. In practice, filter passbands may attenuate or amplify a signal. A passband is distinguished from a stop band by the relative attenuation (or gain) of the responses in each band.
Programmable filters have changeable filter characteristics. For example, filter 101 may receive a program signal that changes the frequency response of the filter. The program signal may be an analog or digital signal(s) that changes the characteristics of the passband and/or stop band of the filter, for example. As shown in the graph in FIG. 1, a programmable filter may be used to change the frequency response between a first frequency response, F1(ω), and a second frequency response, F2(ω). In this example, the second frequency response simply has a wider bandwidth than the first frequency response. Accordingly, in one configuration the filter may pass only component 110 and attenuate or block component 120, and in another configuration the filter may pass both components 110 and 120. Programmable filters are useful in applications where an electronic system is implementing different processing functions at different times. Rather than including multiple different filters, a single programmable filter may be provided and reprogrammed for different uses.
FIG. 1B further illustrates two common filter implementations. A first example filter implementation includes a resistor and capacitor network. An input signal, x(t), is provided at the first terminal of a resistor 130. The second terminal of resistor 130 is connected to the first terminal of a capacitor 131. The second terminal of capacitor 131 is connected to ground. The output, y(t), is taken at the node between resistor 130 and capacitor 131. This simple RC configuration implements a low pass filter, which will pass frequencies up to approximately the following frequency:f=1/(2πRC).Frequencies above this frequency will be increasingly attenuated as the frequency response falls off (or “rolls off”). The second example filter implementation includes a network of inductors and capacitors. Two inductors 141 and 143 are coupled in series between the input and output. A first capacitor 142 is coupled from an intermediate node between the two inductors and ground, and a second capacitor 144 is coupled between the output and ground. This filter is also a bandpass filter, but because two (2) inductor-capacitor networks are coupled together, the frequency response will fall off faster than the RC network, leading to larger attenuations at frequencies just above the cutoff frequency.
Common approaches to programming filters have included changing the values of the resistors, capacitors, or inductors that are used in the filter. However, this approach may not always practical where substantial changes in the filter characteristics are required. For example, in some applications changing a filter from a 100 kHz bandwidth to a 20 MHz bandwidth may not be practical using this approach.
FIG. 2 illustrates another problem relating to filter programmability. In many systems, it is desirable to digitize a signal after it has been filtered. For example, a signal, x(t), may be received by a filter 201 and then coupled, either directly or through other components, to an analog-to-digital converter (“A/D”) 202. A/D 202 converts the filtered signal into N digital bits that may be processed digitally, for example. However, when a signal is digitized by sampling the continuous time signal at a sample frequency, fs, aliasing of the signal frequencies may cause higher frequencies to be translated to lower frequencies. For example, if a sampled input signal, x(t), has frequency components at integer multiples of the sample frequency, then aliasing will cause these components to move to zero frequency. As shown in the diagram in FIG. 2, frequency components 210, 211, and 212 of an inputs signal x(t) may be shifted down to zero frequency after sampling. Thus, a signal component of interest 213, which in this example is a DC signal, may be completely lost when the higher frequency components are shifted to the same frequency. Therefore, in some applications (such as the above example of sampling a signal of interest, located at or close to DC) it is desirable to have a filter that will provide strong attenuation at integer multiples of the sample frequency so that the effects of frequency components at multiples of the sample frequency are reduced or eliminated.
FIG. 2 also includes a potentially desirable filter specification including a low frequency pass band 221, strong attenuation stop bands at 223A, 223B, and 223C (e.g., which are locations of interfering signals aliasing on top of the signal of interest), and moderate attenuation for other out of band signals at 222A, 222B, and 222C. Designing a programmable filter with this filter specification can be very challenging. In some applications, the programmable filter may need to accommodate changing bandwidths (“BW”), different sample frequencies, or different passband and/or stop band frequencies, gains, or attenuation levels. In many applications, implementing such a filter using traditional approaches is not efficient or practical.
FIG. 3A is a theoretical windowed integration sampler. A windowed integration sampler include a multiplier 301, capacitor 302, and sampler 303 (e.g., a switch). An input signal, x(t), is received at one input of the multiplier 310, and the other input to the multiplier receives a window function, w(t). The output of multiplier 301 is coupled to capacitor 302. Capacitor 302 is first discharged through switch 304 and then integrates the multiplier output, and the result is sampled. The output, y(to), represents one sample of the integrated product of the input signal and window function. The output, y(to), may be represented as follows:
                                          y            ⁡                          (                              t                o                            )                                =                                    ∫                                                t                  0                                -                                  T                  W                                                            t                0                                      ⁢                                          x                ⁡                                  (                  τ                  )                                            ⁢                              w                ⁡                                  (                                      τ                    -                                          t                      o                                                        )                                            ⁢                                                          ⁢                              ⅆ                τ                                                    ,                            (                  eq          .                                          ⁢          1                )            where Tw is the length of the window function. FIG. 3B shows a continuous time filter x(t) as input, y(t) as output and h(t) as filter impulse response. Output( y(t0) ) can be described by following integral convolution formula:
                                          y            ⁡                          (                              t                o                            )                                =                                    ∫                              -                ∞                                            +                ∞                                      ⁢                                          x                ⁡                                  (                  τ                  )                                            ⁢                              h                ⁡                                  (                                                            t                      o                                        -                    τ                                    )                                            ⁢                                                          ⁢                              ⅆ                τ                                                    ,                            (                  eq          .                                          ⁢          2                )            For a causal finite impulse response (FIR) filter, h(t)=0 for t<0 and t>TFIR. Thus eq. 2 can be rewritten as:
                                          y            ⁡                          (                              t                o                            )                                =                                    ∫                                                t                  0                                -                                  T                  FIR                                                            t                0                                      ⁢                                          x                ⁡                                  (                  τ                  )                                            ⁢                              h                ⁡                                  (                                                            t                      o                                        -                    τ                                    )                                            ⁢                                                          ⁢                              ⅆ                τ                                                    ,                            (                  eq          .                                          ⁢          3                )            Comparing eq. 1 and eq. 3 it is evident that windowed integration sampler takes the form of a convolution integral for a filter with an impulse response of h(t)=w(−t). Thus, the windowed integration sampler can be represented as a filter having a continuous time input and a discrete time output. FIG. 3B shows functionality of the windowed integration sampler. A continuous time input signal is subject to the filter, embedded in the windowed integration sampler, and then sampled to produce the discrete time output sample.
FIG. 3C is a theoretical windowed integration sampler using “n” parallel stages for generating sample outputs using “n” shifted finite length window functions, w(t), w(t−Ts), . . . , and w(t−nTs). Each stage contributes a sample for a certain position in the window function. For example, multiplier 311 receives the input signal, x(t), and a first window function w(t). The product of the window function and the input signal are integrated over the length of window function, Tw, by capacitor 312. The result is sampled at 350 to produce the first sampled output, y(nTs), where Ts is the sample period. The next sample is take from the product of the input signal and a second version of the window function that is shifted by the sample period (i.e., w(t−Ts)). The product of the input signal and the shifted window function is integrated over the length of the window function, Tw, by capacitor 322 and sampled to provide the second sampled output of y(nTs). Using multiple window functions shifted by the sample period, Ts, a discrete time signal may be obtained that represents the filtered input signal, where the filter impulse response is set by the window function.
Practical implementations of windowed integration samplers for filter applications can be difficult to realize. For example, using a filtering windowed integration sampler, it may be difficult to achieve sufficiently high attenuation levels and wide bandwidths for some applications. Additionally, it desirable to efficiently implement both the window functions and the multipliers.
Thus, there is a need for improved programmable filters. The present invention provides improved programmable filter circuits and methods.